package org.example.system.utils;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * @author : [Pashm]
 * @version : [v1.0]
 * 加密算法工具类
 */

public class BCryptUtils {

    /**
     * 生成加密后密文
     * @param password 密码
     * @return 加密字符串
     */
    public static String encryptPassword(String password){
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        return passwordEncoder.encode(password);
    }

    /**
     * 判断密码是否相同
     * @param rawPassword 真实密码 (用户输入的密码）
     * @param encodePassword 加密后密文（从数据库中查出的）
     * @return 结果
     */
    //根据数据库中查出的加密后的密码，提取出当时加密用的盐值
    public static boolean matchesPassword(String rawPassword, String encodePassword){
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        return passwordEncoder.matches(rawPassword, encodePassword);
    }
}
